如何快速将Zabbix5.0升级至6.0?
感谢本文作者王会新,ZCP-Zabbix高级认证工程师
目录
1.方案说明
2.环境说明
3.Mysql环境部署
4.Zabbix Server升级4.1 升级前备份4.2 为新数据库授权4.3 导入Zabbix5.0数据结构4.4 导入旧数据库备份Zabbix配置数据4.5 为新数据库历史表添加主键4.6 为新数据库创建表分区4.7 创建事件调度器4.8 升级Zabbix相关服务4.9 Zabbix服务检查4.10 失败回滚
方案说明
升级目标版本Zabbix6.0.3。升级方案Server采用在当前环境节点直接升级,数据库采用新服务器部署Mysql8.0.28数据库将Server配置信息迁移至新数据库,升级前需对Server服务节点快照备份便于失败回滚。因升级需要停用服务,所以不论升级成功或失败,都将造成升级当天部分监控数据的丢失。
环境说明
安装前准备
涉及到了机器设备:zabbixdb
系统版本:CentOS Linux release 8.3.2011
MySQL版本:mysql8.0.28数据库。
在默认情况下SELinux和防火墙都是关闭状态。
Mysql环境部署
3.1 mysql安装
1.创建mysql用户和禁止用户登录
2.根据要求数据库存储目录为/data目录
3.安装已经下载好的mysql的rpm安装包
3.2 配置Mysql
1.初始化Mysql并指定数据目录
2.修改Mysql配置文件
下面配置属于zabbix-server的mysql配置。innodb_buffer_pool_size = 16G 大小为总内存的75%左右。
vi /etc/my.cnf
3.启动服务并添加开机自启
4.查看Mysql进程
ps -ef | grep mysql
5.修改安全策略
1.修改数据库root密码
grep password /var/log/mysqld.log
mysql>ALTER USER 'root'@'localhost' identified by 'Zabbix#1234';
3.3 创建zabbix库
mysql>create database zabbix character set utf8mb4 collate utf8mb4_bin;
Zabbix Server升级
4.1 升级前备份
1.导出Zabbix配置数据#mysqldump -uroot -p zabbix --ignore-table=zabbix.history --ignore-table=zabbix.history_uint --ignore-table=zabbix.history_str --ignore-table=zabbix.history_text --ignore-table=zabbix.history_log --ignore-table=zabbix.trends --ignore-table=zabbix.trends_uint --ignore-table=zabbix.alerts --ignore-table=zabbix.events>/opt/zbx5.0.sql
2.备份zabbix配置文件
3.备份zabbix前端
4.备份告警脚本及自定义脚本
5.备份httpd配置文件
4.2 为新数据库授权
1.创建用户并授权
mysql> create user 'zabbix'@'192.18.252.%' identified by 'Zabbix#1234';
mysql> create user 'zabbix'@'localhost' identified by 'Zabbix#1234';
mysql> grant all privileges on zabbix.* to 'zabbix'@'192.18.252.%';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
mysql>flush privileges;
mysql>alter user 'zabbix'@'192.18.252.%' identified with mysql_native_password by '123456';
mysql>alter user 'zabbix'@'192.18.252.%' identified with mysql_native_password by 'Zabbix#1234';
#Mysql8.0安全系数较高需修改初始密码
4.3 导入zabbix5.0数据结构
1.导入Zabbix5.0数据结构zcat /opt/software/create.sql.gz | mysql -uzabbix -p zabbix
4.4 导入旧数据库备份Zabbix配置数据
1.导入旧环境Zabbix配置数据
cat /opt/software/zbx5.0.sql | mysql -uzabbix -p zabbix
4.5 为新数据库历史表添加主键
1.Zabbix数据库history表添加主键
mysql -uzabbix -p zabbix < /opt/software/history_pk_prepare.sql
2.删除旧表
mysql>DROP TABLE history_old; mysql>DROP TABLE history_uint_old; mysql>DROP TABLE history_str_old; mysql>DROP TABLE history_log_old; mysql>DROP TABLE history_text_old;
4.6 为新数据库创建表分区
1.配置文件准备
上传partition_call.sql存储过程和partition_all.sql分区设置保留时间。设置历史数据保留时长(90天)和趋势数据保留时长(360天)
2.创建并导入存储过程
mysql -uzabbix -p zabbix < /opt/software/partition_call.sql
mysql -uzabbix -p zabbix < /opt/software/partition_all.sql
3.调用存储过程
mysql -uzabbix -p zabbix -e "call partition_maintenance_all('zabbix')"
4.7 创建事件调度器
mysql> use zabbix; mysql> create event zabbix_partition on schedule every 1 day starts '2022-04-28 2:00:00' do CALL partition_maintenance_all('zabbix');
4.8 升级Zabbix相关服务
1.停止Zabbix、Agent、PHP、Apache服务
systemctl stop zabbix-server zabbix-agent httpd php-fpm
2.卸载zabbix5.0.1
rpm -e zabbix-web-deps-5.0.1-1.el8.noarch zabbix-apache-conf-5.0.1-1.el8.noarch zabbix-web-mysql-5.0.1-1.el8.noarch zabbix-agent-5.0.1-1.el8.x86_64 zabbix-server-mysql-5.0.1-1.el8.x86_64 zabbix-web-5.0.1-1.el8.noarch
3.安装zabbix6.0.3
rpm -ivh zabbix-web-deps-6.0.3-1.el8.noarch.rpm zabbix-apache-conf-6.0.3-1.el8.noarch.rpm zabbix-web-mysql-6.0.3-1.el8.noarch.rpm zabbix-agent-6.0.3-1.el8.x86_64.rpm zabbix-server-mysql-6.0.3-1.el8.x86_64.rpm zabbix-web-6.0.3-1.el8.noarch.rpm
4.配置zabbix6.0.3配置文件
由于zabbix5.0跟zabbix6.0.3的zabbix_server.conf配置文件参数不同,所以不能直接复制替换zabbix_server.conf。
查看备份zabbix-server配置
5.对应修改zabbix server 配置文件
vi /etc/zabbix/zabbix_server.conf
6.启动Zabbix、Agent、PHP、Apache服务
systemctl start zabbix-server zabbix-agent httpd php-fpm
7.查看日志文件
tail -f /var/log/zabbix/zabbix_server.log tail -f /data/mysql/data/log/mysqld.log
Zabbix server将会自动升级数据库。开始后,Zabbix server报告当前(强制和非强制的)和需要的数据库版本。如果当前强制版本低于需要的版本,Zabbix server自动执行所需要的数据库补丁。数据库升级的开始和进度信息(百分比)将会写入Zabbix server的日志文件中。当升级完成后,将会在日志文件中写入一条“database upgrade fully completed”的信息。如果任何升级补丁失败,Zabbix server将不会启动,即使数据库当前强制版本比所需版本高,Zabbix server也不会启动。只有当数据库当前的强制版本与需要的强制版本相符时,Zabbix server才会启动。
注:在你启动server之前:
◆确认数据库用户拥有足够的权限(创建表,删除表,建立索引,删除索引)
◆确认拥有足够的空余磁盘空间
Zabbix服务检查
◆检查升级后的zabbix是否工作正常,检查最新数据。
◆检查zabbix server日志是否正常。
1.Web访问并检查数据及告警情况
Web访问出现如图所示问题
2.修改前端连接新数据库信息
3.检查最新数据采集情况
4.如图所示数据采集正常
4.1 出现中文乱码修改字体
mv /usr/share/fonts/dejavu/DejaVuSans.ttf /usr/share/fonts/dejavu/DejaVuSans.ttf_bak20220424
mv /opt/software/msyh.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
5.检查告警信息触发动作成功发送告警信息
失败回滚
1.回滚Server升级前备份文件,如有文件缺失启动快照恢复
2.回滚MySQL数据库升级前的备份服务器,将Server配置文件数据库指向修改原地址
祝大家升级顺利!
-------------- --------------
第7届Zabbix中国峰会来了!
12月2-3日,相约上海。
抢早鸟票!同时讲师招募!
大会包含客户案例、新功能技巧、Workshop(实践操作课)、趣味晚宴等精彩活动。
往届峰会包含交通银行、安信证券、华为、光大银行、中国银行、中移在线、京东、咪咕等,本届峰会精彩继续!
往期推荐
银行案例|Zabbix跨版本升级指南,4.2-6.0不香吗?
Zabbix全年在线课录屏
PDF手册|1666页 Zabbix6.0官方中文 操作手册PDF下载!
扫一扫|加入技术交流群
微信号|17502189550
备注“使用Zabbix年限+企业+姓名”
5000+用户已加入!
一个人走得快,一群人走得远!